#!/bin/bash

# =============================================================================
# LimeReader DMG构建脚本 (使用自定义背景图片)
# 使用你在 deploy/resources/dmg_background.png 的背景图片
# =============================================================================

set -e

# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'

echo -e "${BLUE}🎨 LimeReader DMG 构建工具${NC}"
echo -e "${BLUE}使用自定义背景图片: deploy/resources/dmg_background.png${NC}"
echo

# 检查前置条件
echo -e "${YELLOW}📋 检查前置条件...${NC}"

# 检查应用是否存在
APP_PATH="build/bin/LimeReader.app"
if [ ! -d "$APP_PATH" ]; then
    echo -e "${RED}❌ 应用未找到: $APP_PATH${NC}"
    echo -e "${YELLOW}请先运行: ./build_macos_release.sh${NC}"
    exit 1
fi

# 检查背景图片
BACKGROUND_PATH="deploy/resources/dmg_background.png"
if [ ! -f "$BACKGROUND_PATH" ]; then
    echo -e "${RED}❌ 背景图片未找到: $BACKGROUND_PATH${NC}"
    exit 1
fi

# 检查Python脚本
PYTHON_SCRIPT="deploy/create_macos_dmg.py"
if [ ! -f "$PYTHON_SCRIPT" ]; then
    echo -e "${RED}❌ Python脚本未找到: $PYTHON_SCRIPT${NC}"
    exit 1
fi

echo -e "${GREEN}✅ 前置条件检查通过${NC}"
echo

# 显示背景图片信息
echo -e "${YELLOW}🖼️ 背景图片信息:${NC}"
echo -e "   路径: $BACKGROUND_PATH"
echo -e "   尺寸: $(sips -g pixelWidth -g pixelHeight "$BACKGROUND_PATH" | grep -E "pixelWidth|pixelHeight" | awk '{print $2}' | tr '\n' 'x' | sed 's/x$//')"
echo -e "   文件大小: $(du -h "$BACKGROUND_PATH" | cut -f1)"
echo

# 创建输出目录
mkdir -p dist
echo -e "${GREEN}📁 输出目录已准备: dist/${NC}"

# 执行DMG创建
echo -e "${YELLOW}🔨 开始创建DMG...${NC}"

cd deploy

python3 create_macos_dmg.py \
    --app-path "../$APP_PATH" \
    --version "2.7.2" \
    --output-dir "../dist" \
    --config "release_config.json"

cd ..

# 检查结果
DMG_FILES=($(find dist -name "*.dmg" -type f 2>/dev/null))

if [ ${#DMG_FILES[@]} -eq 0 ]; then
    echo -e "${RED}❌ DMG文件创建失败${NC}"
    exit 1
fi

echo
echo -e "${GREEN}🎉 DMG创建完成!${NC}"
echo

# 显示创建的DMG文件
for dmg_file in "${DMG_FILES[@]}"; do
    echo -e "${GREEN}📦 DMG文件: ${NC}$(basename "$dmg_file")"
    echo -e "${GREEN}📍 完整路径: ${NC}$dmg_file"

    # 显示文件大小
    size=$(stat -f%z "$dmg_file" 2>/dev/null || echo "0")
    size_mb=$(echo "scale=2; $size / 1024 / 1024" | bc -l 2>/dev/null || echo "$(($size / 1024 / 1024))")
    echo -e "${GREEN}📊 文件大小: ${NC}${size_mb} MB"

    echo -e "${YELLOW}🚀 测试DMG: ${NC}open \"$dmg_file\""
    echo
done

echo -e "${GREEN}✨ 你的自定义背景图片已应用到DMG中!${NC}"